(function(){
   return {
       import:commonImport.nesTable.concat(commonImport.clipboard),
        init:function(){
            var _this=this;
            _this.autoReload=false; //禁止自动刷新
            ajaxPost({
                url:"sysPermission/findAll",
                success:function(data){
                    _this.data.sysPermission=data.data;
                    _this.data.sysPermissionTree=_this.toTree([],null);
                    _this.data.sysPermissionMap={};
                    for(var k in data.data){
                        _this.data.sysPermissionMap[data.data[k].id]=data.data[k];
                    }
                    _this.reload();
                }
            });
        },
       data:{
           sysPermissionMap:{},
           sysPermissionTree:{},
           sysPermission:[]
       },
       before:function(data){
            return data;
       },
       after:function(){
            var _this=this;
           var clipboard=new ClipboardJS('.e-copy', {
               text: function(trigger) {
                   return trigger.getAttribute('content');
               },

           });
           clipboard.on('success', function(e) {
              toastr.success("复制成功");
           });

           clipboard.on('error', function(e) {
               toastr.error("复制失败");
           });
           _this.$(".nestable-show").nestable({
               expandEvent:function(_this){
                   var dataId=$(_this).parent().attr("data-id");
                   var data= $.cookie("sysPermissionExpand");
                   if(data){
                       var dataArray=JSON.parse(data);
                       dataArray[dataId]=true;
                       $.cookie("sysPermissionExpand",JSON.stringify(dataArray),{path:"/" ,expires:365});
                   }else{
                       var dataArray={};
                       dataArray[dataId]=true;
                       $.cookie("sysPermissionExpand",JSON.stringify(dataArray),{path:"/" ,expires:365});
                   }
               },
               collapseEvent:function(_this){
                   var dataId=$(_this).parent().attr("data-id");
                   var data= $.cookie("sysPermissionExpand");
                   if(data){
                       var dataArray=JSON.parse(data);
                       dataArray[dataId]=false;
                       $.cookie("sysPermissionExpand",JSON.stringify(dataArray),{path:"/" ,expires:365});
                   }else{
                       var dataArray={};
                       dataArray[dataId]=false;
                       $.cookie("sysPermissionExpand",JSON.stringify(dataArray),{path:"/" ,expires:365});
                   }
               }
           });
           var initNes=function(){
               var data= $.cookie("sysPermissionExpand");
               var dataArray={};
               if(data){
                   dataArray= JSON.parse(data);
               }
               if(Object.keys(dataArray).length>0){
                   _this.$(".nes-init").each(function(){
                       var dataId=$(this).attr("data-id");
                       if(dataArray[dataId]==null){
                           return;
                       }
                       if(dataArray[dataId]){
                           $(this).find(".expand").each(function (e) {
                               $(this).trigger("click");
                           });
                       }else{
                           $(this).find(".collapse").each(function (e) {
                               $(this).trigger("click");
                           });
                       }

                   });
               }else{
                   //默认关闭一级
                   _this.$(".nes-level-1").each(function(){
                       $(this).find(".collapse").each(function(e){
                           $(this).trigger("click");
                       });
                   });
               }
           }
           initNes();

           this.$(".e-stop-mousedown").mousedown(function(event){
               event.stopPropagation();
           });

           if(!isPermission("sysPermission_sort")){
               this.$(".sysPermission_sort_li").mousedown(function(event){
                   event.stopPropagation();
               });
           }



           _this.$(".nestable-show").on("change",function(){
               var json= $(".nestable-show").nestable("serialize");
               var findChange=function(data,parentId,result){
                   if(data==null){
                       return[];
                   }
                   for(var i=0;i<data.length;i++){
                        var oldData= _this.data.sysPermissionMap[data[i].id];
                        var changeParentId=parentId;
                        var changeSort=i;
                        if(oldData.parentId!=parentId||i!=oldData.sort){
                            result.push({parentId:changeParentId,sort:changeSort,id:oldData.id});
                            _this.data.sysPermissionMap[oldData.id].sort=changeSort;
                            _this.data.sysPermissionMap[oldData.id].parentId=changeParentId;
                        }
                       findChange(data[i].children,data[i].id,result);
                    }
                   return result;
               };
               var result=[];
               findChange(json,null,result);
               if(result.length==0){
                   return;
               }
               ajaxBody({
                   url:"sysPermission/change",
                   data:JSON.stringify(result),
                   success:function(data){
                        toastr.success("修改成功");
                   }
               });
           });
           this.$(".e-add").click(function(){
               var parentId=$(this).attr("data-parent-id");
               if(parentId){
                DsModule.to("module/sysPermission/add",{parentId:parentId});
               }else{
                   DsModule.to("module/sysPermission/add");
               }
           });
           this.$(".e-update").click(function(){
               var id=$(this).attr("data-id");
               DsModule.to("module/sysPermission/update",{id:id});
           });


           this.$(".e-delete").click(function(){
               var id=$(this).attr("data-id");
               ajaxPost({
                   url:"sysPermission/delete",
                   data:{"id":id},
                   success:function(data){
                       toastr.success("删除成功");
                       _this.init();
                   }
               })
           });


       },
       toTree:function(treeData,parentId){
           var _this=this;
           var data=_this.data.sysPermission;
           for(var i=0;i<data.length;i++){
               if(data[i].parentId==parentId){
                   var children=_this.toTree([],data[i].id);
                   data[i].children=children;
                   treeData.push(data[i]);
               }
           }
           return treeData;
       }
   }
});